import * as AllIcons from "@ant-design/icons-vue";
import { DefineComponent } from "vue";

export type IconComponent = (typeof AllIcons)[keyof typeof AllIcons];
export type CollapseItem = {
  label: string;
  value: string;
  icon: IconComponent;
};
export type Container = {
  label: string;
  list: CollapseItem[];
};
export type CollapseList = {
  [key: string]: Container;
};
export type InitComponentValue = {
  component: Component;
  config: Component;
  prop?: { [key: string]: any };
  customProp?: { [key: string]: any };
};
export type InitComponent = {
  [key: string]: InitComponentValue;
};
export type Component = InstanceType<DefineComponent>;
export type CommonKV = Record<string, any>;
export type Schema = CollapseItem &
  InitComponentValue & {
    id: string | number;
  };
